#!/bin/bash
while [ 1 -eq 1 ]
do
    read -p "请输入视频所在文件夹" dir_name
    if [ ! -d "$dir_name" ];then
        echo "文件夹不存在，请重新输入"
    else
        read -p "你输入的是$dir_name确定吗？输入n重新输入文件夹,回车继续" dirsure
        if [[ $dirsure = n ]]
        then
            echo "重新输入"
        else
            break
        fi
    fi
done


read -p "请输入B站直播推流密钥" rtmp
read -p "请输入推流的帧率" fps
while [ 1 -eq 1 ]
do
    read -p "输入秒数，用于防止意外断网，直播地址被封，停播之后推流失败程序死循环(大概有多少个视频就填多少秒吧,乱填或者不填默认120,如果总视频时长小于120可能也会跳出循环)" loop_time
    if [[ $NULL -eq $loop_time ]]
    then
        loop_time=120
        break
    else
        
        break
    fi
done




while [ 1 -eq 1 ]
do 
    cd $dir_name
    loop_st=$(date +%s)
    for file_name in *;
    do 
        ffmpeg -re -i "$file_name" -vcodec copy -acodec copy -b:a 192k -r "$fps" -f flv "rtmp://live-push.bilivideo.com/live-bvc/$rtmp"
    done
    loop_et=$(date +%s)
    if [ $(($loop_et-$loop_st)) -lt $loop_time ]
    then
        echo $quit_flag
        echo "正在快速循环，正在判断原因"
        ping -c 1 baidu.com
        if [ $? -eq 2 ]
        then
            echo "网络无法连接"
            read -t 600 -p "请在10分钟内做出选择:输入1继续，任意字符退出(10分钟不选择自动退出)" quit_flag
            if [[ $quit_flag = 1 ]]
            then
                echo "继续"
            else
                break
            fi
        else
            echo "推流失败，请去b站看看"
            read -t 600 -p "请在10分钟内做出选择:输入推流密钥继续，输入0退出(10分钟不选择自动退出)" quit_flag
            
            if [[ $quit_flag = 0 || $quit_flag = $NULL ]]
            then
                break
            else
                rtmp=$quit_flag
                #echo $quit_flag
            fi
        
        fi
    fi
done